package leetcode_day._2023._11;

/**
 * 2342. 数位和相等数对的最大和
 * 算法: 数组
 * 保存数位和最大的数, 相当于左端点, 枚举右端点
 *
 * @author yezh
 * @date 2023/11/18 22:41
 */
public class _18 {

    public int maximumSum(int[] nums) {
        int ans = -1;
        // 最多 9 个 9 相加
        int[] ms = new int[82];
        for (int num : nums) {
            int s = 0;
            for (int x = num; x > 0; x /= 10) s += x % 10;
            if (ms[s] != 0) ans = Math.max(ans, ms[s] + num);
            ms[s] = Math.max(ms[s], num);
        }
        return ans;
    }

}
